
#pragma once
#include "stdafx.h"
#include "learn.h"

class LearnNode
{
public:
	LearnNode() = default;
	virtual ~LearnNode() = default;

public:
	virtual bool init();
	virtual void release() = 0;
	virtual void update(float dt);

public:
	virtual void keyBoardPress(int key, int modes) {};
	virtual void keyBoardRelease(int key, int modes) {};
	virtual void keyBoardRepeat(int key, int modes) {};
	virtual void mouseButtonPress(int button, int modes) {};
	virtual void mouseButtonRelease(int button, int modes) {};
	virtual void cursorPosCallBack(double xPos, double yPos) {};
	virtual void scrollCallBack(double xOffset, double yOffset) {};

public:
	PROPERTY_BY_REF(std::string, m_chapterName, ChapterName);
	PROPERTY_BY_REF(std::string, m_nodeName, NodeName);
};

typedef std::shared_ptr<LearnNode> LearnNodePtr;
